package mx.com.fractal.ristorante.rest;

import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import mx.com.fractal.ristorante.dto.ErrorResponseDTO;
import mx.com.fractal.ristorante.dto.PosicionDTO;
import mx.com.fractal.ristorante.service.PosicionService;

import org.apache.log4j.Logger;
import org.jboss.resteasy.annotations.providers.jaxb.json.BadgerFish;

@Path("posicion")
@Singleton
public class PosicionRest {

	@EJB
	private PosicionService posicionService;
	private static final Logger logger = Logger.getLogger(PosicionRest.class);
	
	@PUT @BadgerFish
	@Path("save/{idRestaurante}")
	@Produces(value={MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
	public Response save(@PathParam("idRestaurante") Short idRest,
			@QueryParam("nombre") String nombre,
			@QueryParam("descripcion") String desc){
		
		PosicionDTO posicionDTO=new PosicionDTO();
		posicionDTO.setIdRestaurante(idRest);
		posicionDTO.setDescripcion(desc);
		posicionDTO.setNombre(nombre);
		try {
			posicionService.save(posicionDTO);
			return Response.ok(posicionDTO).build();
		} catch (Exception e) {
			logger.error("No se pudo guardar la posicion --> "+ posicionDTO, e);
			ErrorResponseDTO error=new ErrorResponseDTO();
			error.setMensaje(e.getMessage());
			return Response.serverError().entity(error).build();
		}
		
	}
}
